#ifndef MESSAGE_COMMAND_H_H
#define MESSAGE_COMMAND_H_H

class CommandArgs;

class MessageCommand
{
public:
	virtual ~MessageCommand() {}
	virtual void execute() = 0;
	enum MessageTye {
		MouseMessage,KbdMessage
	};
};

class MouseCommand : public MessageCommand
{
public:
	MouseCommand(const CommandArgs& args);
	void execute();
private:
	unsigned m_Flags;
	int m_PointX;
	int m_PointY;
};

class KbdCommand : public MessageCommand
{
	typedef unsigned char Byte;
public:
	KbdCommand(const CommandArgs& args);
	void execute();
private:
	Byte m_VirtualK;
	Byte m_ScanCode;
	Byte m_Flags;
};

#endif